工控網首頁
>

應用設計

>

關節電機控制實時性與同步性CANopen協議救援機器人調試系統

關節電機控制實時性與同步性CANopen協議救援機器人調試系統

2013/11/27 10:16:34
在災后救援現場,為實現廢墟環境下的靈活移動,增強對各種復雜地形的適應性,機器人需要具有多個關節,并且各關節需要獨立運動。在搜索和救援過程中,為了能在諸如陡坡、樓梯、管道及廢墟等復雜環境下自由移動,要求機器人具備多種運動姿態并且能迅速改變姿態以滿足不同環境的需求。因此要求機器人的各關節具有良好的運動特性。
    關節運動性能的好壞決定了機器人能否適應在復雜環境中靈活運動的要求,是評價救援機器人性能的一個重要指標。為了對機器人各關節運動性能進行測評,通過建立與機器人各關節控制器相連的運動控制主站,實現對關節控制器的組態與監視,并通過分析機器人運動關節反饋回的數據優化控制參數,使得運動關節控制性能得以提高。針對運動控制中對各關節電機控制實時性與同步性以及結構靈活性的要求,提出了一種基于CANopen協議的救援機器人調試系統。
    CANopen為基于CAN的高層協議,是最初由BOSCH公司提出的一種串行數據通信總線。其具有可靠性高、抗干擾性強、開發簡單、造價低廉及其短幀傳輸和無破壞仲裁技術等特點,應用極為廣泛。CANopen是一個基于CAL的子協議,采用面向對象的思想設計,具有很好的模塊化特性和很高的適應性,通過擴展可以適用于大量的應用領域[1]。
1 方案設計
    圖1所示為救援機器人調試系統框圖,包含電機控制器、基于CAN總線的網絡構架和PC機上的調試系統。
    電機驅動器控制方法采用了三個基本控制環,即位置環、轉速環和轉矩環,各閉環采用PID算法控制,以便更加精確地控制電機;同時建立了CANopen從站,通過CAN總線將各電機驅動器和PC機上的調試軟件之間進行數據交換;PC機則通過PCI-CAN卡實現了CANopen主站,從而方便對電機驅動器上的電機數據進行監測和處理,并發送調試系統所發出的命令;采用NI公司的Labview調試系統上位機的程序編寫。

2 CANopen從站設計
2.1 硬件設計
    電機控制器用來對救援機器人關節進行精確控制,是系統的關鍵。控制器采用MC56F8322微控制器作為控制核心,圖2為系統框圖。    電機控制器采集速度、電流、電壓三種參數,各路采用PID閉環對電機進行精確控制。CAN總線部分采用MC56F8322內置MSCAN模塊,實現了現場總線控制系統的構架;CAN總線收發器與控制器之間采用高速光電隔離器件6N137實現信號隔離;同時采用隔離型DC-DC變換器實現電源隔離,從而提高了現場抗干擾能力。除了以上主要部分以外,還有CPU監控器、功能選擇開關以及LED指示部分。LED分別用于電源指示、CAN接口當前的收發狀態指示以及接口的通信故障(如總線關閉)指示。
2.2 軟件設計
      CANopen從站移植了CANopen協議的開源代碼CanFestival,該開源代碼實現了CANopen協議的全部內容。在系統軟件設計時,只需完成CAN的硬件設置、對象字典的定義以及canDispatch()函數的調用即可。
      CANopen協議的核心部分是對象字典(Object Dictionary),通過對象字典對設備功能進行描述。CANopen對象字典是一個有序的對象組,每個對象采用一個16位的索引來尋址,其范圍在0x1000~0x9FFF之間。為了允許訪問數據結構中的單個元素,定義了一個8 bit的子索引。CANopen設備的功能及特性用電子數據表單(EDS)的形式描述,實際的設備設置通過設備配置文件(DCF)進行描述[1]。系統中電機的速度、電流、電壓是最重要的監控信息,故將其定義在如下結構體中:
    typedef  struct{
        float voltage;        //電壓
        float Current;        //電流
        float velocity;        //速度
    }MotorPara;
    本系統的電機控制器是以非標準設備設計的,根據對象字典結構應定義在制造商特定規范區域2000h~5FFFh之間。如表1所示。

3 CANopen主站設計
    CANopen協議采用對象字典(OD)、電子數據文檔(EDS)等概念來描述設備和協議的相關信息,還規定了網絡管理(NMT)、服務數據對象(SDO)、過程數據對象PDO等多種通信機制[1]。在CANopen主站中,利用LabVIEW實現了NMT、SDO和PDO等功能。
3.1 NMT
    NMT是提供對網絡上所有節點的狀態和行為的控制及監測機制,在CANopen網絡中只允許一個NMT主節點處于激活狀態。只有NMT主節點能夠傳送NMT模塊控制報文,所有從設備必須支持NMT模塊控制服務[1]。
    通過NMT消息可以對節點狀態進行操作,LabVIEW中的具體實現如圖3所示。首先根據NMT消息格式通過數組函數將COB-ID、RTR、LEN、Node-ID及STATUS捆綁為U8數組,由于VISA僅支持U8字符串發送數據,因此需要將U8數組轉換為U8字符串。然后調用VISA Write函數實現USB的數據發送。
3.2 SDO
    SDO采用客戶(Client)/服務器(Server)通信方式, 通過索引和子索引向應用程序提供訪問對象字典的客戶接口。SDO是一種需要請求和應答的點對點通信方式, 允許任意長度的數據通信[1]。PC機上管理控制系統采用SDO方式對通用溫度和整流器控制器參數進行配置, 完成控制器工藝參數的配置和控制模式的切換等。
    CANopen協議規定SDO消息為8 B長度,第1個字節為命令碼,第2、3個字節為索引,第4個字節為子索引,其余字節為消息所攜帶的數據。與NMT消息處理類似,SDO消息也是先通過數組函數根據SDO的消息格式創建一個U8數組,之后將數組轉換為U8字符串,最后通過USB發送。具體實現如圖4所示。
    在CANopen通信機制中,服務器收到SDO信息后必將應答,所以主站必須處理服務器返回的SDO消息。消息的處理過程為,首先根據COB-ID攜帶的功能碼判斷是否為SDO消息,然后判斷SDO消息中的命令字字節,根據不同的命令字做出相應的處理。
3.3 PDO
    PDO采用生產者/消費者通信方式, 數據從一個生產者傳到一個或多個消費者,數據長度限制在8個字節之內。PDO 通信沒有協議規定, PDO報文的內容是預定義或者在網絡啟動時配置,因此多用于實時數據傳輸,工藝過程中工藝參數的傳送由PDO實現。CANopen中定義的PDO消息與正常的CAN幀格式相同, LabVIEW下實現方法可參考NMT及SDO。
    調試系統上位機可以監視在不同的PID參數控制時電機的響應特性,從而為控制參數優化提供直觀的依據。由此可見,基于CANopen網絡的救援機器人調試系統成功地實現了對運動關節各項參數的實時監控和控制,并且可以對電機控制參數進行在線配置,對救援機器人的穩定運行提供了極大的保障。
參考文獻
[1] Boterenbrood H.CANopen high-level protocol for CAN-bus[C].N IKHFF Internal Documentation,2000(9).
[2] 王俊波,胥布工.CANopen協議分析與實現[J].微計算機信息,2006,22(6-2):104-106.




投訴建議

提交

查看更多評論
其他資訊

查看更多

超越傳統直覺,MATLAB/Simulink助力重型機械的智能化轉型

新大陸自動識別精彩亮相2024華南國際工業博覽會

派拓網絡被Forrester評為XDR領域領導者

智能工控,存儲強基 | 海康威視帶來精彩主題演講

展會|Lubeworks路博流體供料系統精彩亮相AMTS展會